home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 2.9 KB | 104 lines | [TEXT/MPS ] |
- /*
- File: Threads.idl
-
- Contains: Thread Manager Interfaces.
-
- Version: Technology: System 7.5
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __THREADS_IDL__
- #define __THREADS_IDL__
-
- #include <somobj.idl>
- #include <somcls.idl>
-
- #ifndef __ERRORS_IDL__
- #include <Errors.idl>
- #endif
- #ifndef __MEMORY_IDL__
- #include <Memory.idl>
- #endif
-
- #ifdef __SOMIDL__
-
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- /* Thread states */
- typedef unsigned short ThreadState;
-
- /* Error codes have been meoved to Errors.(pah) */
- /* Thread environment characteristics */
- typedef OpaquePtr ThreadTaskRef; /* Substituted OpaquePtr for “void*” */
-
- /* Thread characteristics */
- typedef unsigned long ThreadStyle;
-
- /* Thread identifiers */
- typedef unsigned long ThreadID;
-
- /* Options when creating a thread */
- typedef unsigned long ThreadOptions;
-
- /* Information supplied to the custom scheduler */
- typedef SOMLargeStruct SchedulerInfoRec; /* Derived from a struct of 16 bytes in size */
-
- typedef OpaquePtr SchedulerInfoRecPtr; /* Substituted OpaquePtr for “SchedulerInfoRec*” */
-
- #if GENERATING68K && GENERATINGCFM
- /*
- The following UniversalProcPtrs are for CFM-68k compatiblity with
- the implementation of the Thread Manager.
- */
- typedef UniversalProcPtr ThreadEntryProcPtr;
-
- typedef UniversalProcPtr ThreadSchedulerProcPtr;
-
- typedef UniversalProcPtr ThreadSwitchProcPtr;
-
- typedef UniversalProcPtr ThreadTerminationProcPtr;
-
- typedef UniversalProcPtr DebuggerNewThreadProcPtr;
-
- typedef UniversalProcPtr DebuggerDisposeThreadProcPtr;
-
- typedef UniversalProcPtr DebuggerThreadSchedulerProcPtr;
-
- #else
- /*
- The following ProcPtrs cannot be interchanged with UniversalProcPtrs because
- of differences between 680x0 and PowerPC runtime architectures with regard to
- the implementation of the Thread Manager.
- */
- /* Prototype for thread's entry (main) routine */
- typedef OpaquePtr voidPtr; /* Substituted OpaquePtr for “void*” */
-
- typedef OpaquePtr ThreadEntryProcPtr;
- /* Prototype for custom thread scheduler routine */
- typedef OpaquePtr ThreadSchedulerProcPtr;
- /* Prototype for custom thread switcher routine */
- typedef OpaquePtr ThreadSwitchProcPtr;
- /* Prototype for thread termination notification routine */
- typedef OpaquePtr ThreadTerminationProcPtr;
- /* Prototype for debugger NewThread notification */
- typedef OpaquePtr DebuggerNewThreadProcPtr;
- /* Prototype for debugger DisposeThread notification */
- typedef OpaquePtr DebuggerDisposeThreadProcPtr;
- /* Prototype for debugger schedule notification */
- typedef OpaquePtr DebuggerThreadSchedulerProcPtr;
- #endif
- /* Thread Manager routines */
- #endif
-
- #endif /* __SOMIDL__ */
-
- #endif /* __THREADS_IDL__ */
-
-